﻿using HCMS.Const;
using Microsoft.AspNetCore.SignalR;
using System.Security.Claims;

namespace HCMS.Web.Manage.ServicesExtensions.SignalExt
{
    /// <summary>
    /// SignalR 登录用户 Id 提供器
    /// </summary>
    public class NameUserIdProvider : IUserIdProvider
    {
        /// <summary>
        /// 将当前登录管理员 Id 用作 SignalR 的 UserId
        /// </summary>
        /// <remarks>
        /// 后续，系统可以直接根据管理员 Id 给指定人员推送消息
        /// </remarks>
        /// <param name="connection"></param>
        /// <returns></returns>
        public string GetUserId(HubConnectionContext connection)
        {
            return connection.User.FindFirstValue(ManageConst_ClaimTypes.Id);
        }
    }
}
